package com.cskaoyan.javase.basic._8escape;

/**
 * 转义字符
 * 什么是转义字符？
 * 所谓转义字符，就是用反斜杠（\）加上一个特殊的字符串用来表示一个全新的字符。
 * 因为这个字符已经和原先字符串的意思大不相同，所以整体称之为转义字符。
 *
 * 转义字符在几乎所有的编程语言中都可以使用,不仅仅是Java
 *
 * 转义字符的作用是什么？
 *
 * 实际上转义字符可以表示任何一个普通字符，但是普通的字符直接书写给出即可，使用转义字符意义不大。
 * 转移字符最重要的用途是，表示那些无法用键盘直接输入的控制字符。比如在ASCII码表中，那些换行，翻页等等字符。
 *
 * 使用转义字符表示所有的字符,可以使用以下方式:
 * \ddd	1到3位八进制数所代表的任意字符	Unicode编码前256个字符
 * \0	空字符，什么都没有	000
 * \\uxxxx	4位十六进制所代表的任意字符	Unicode编码前65536个字符
 * \\u0000	空字符，什么都没有	000
 *
 * @since 16:08
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    public static void main(String[] args) {
        // \b	退格(BS) ，将当前位置移到前一列
        String str = "12345";
        System.out.println(str + "\b678");
        // \n	换行(LF) ，将当前位置移到下一行开头
        // \r	回车(CR) ，将当前位置移到本行开头
        System.out.println("hello\nworld");
        System.out.println("-------------------");
        System.out.println("hello\rworld");

        // 换行
        System.out.println("6666666666666666666");
        // 不换行的
        System.out.print(777777777);
        System.out.println("888888888888888");


        // \t	水平制表(HT) （跳到下一个TAB位置）
        System.out.println("hello\tworld");

        // \\	两个反斜杠表示一个反斜杠
        // System.out.println("\");
        System.out.println("\\");
        System.out.println("//");

        // \'	代表一个单引号（撇号）字符
        System.out.println("\"");
        // \"	代表一个双引号字符

        // \ddd 三位八进制数表示一个新的字符
        // 141八进制表示十进制97 以下转义字符表示a
        System.out.println("\141");
        // \\uxxxx 四位十六进制数表示一个新的字符
        System.out.println("\u0061");


        // 编码值为0的字符,绝对空字符
        System.out.println("\u0000");
    }
}
